SpringBoot文件上传限制
无法捕获MaxUploadSizeExceededException异常的问题
1 2 3 4
| spring.servlet.multipart.max-file-size = 50MB spring.servlet.multipart.max-request-size = 50MB spring.servlet.multipart.resolve-lazily=true #设置为懒加载,不然依然会捕获不到异常 server.tomcat.max-swallow-size = 100MB # 最重要的是这一行,可设置为 -1 不作限制
|
注意: 上面最重要的是要配置内嵌的 tomcat 的最大吞吐量即 max-swallow-size,可以设置 -1 不限制,也可以设置一下比较大的数字这里微酷设置 100M。
当上传文件超 tomcat 的大小限制后会先于 Controller 触发异常,所以这时我们的异常处理类无法捕获 Controller 层的异常了,这就是无法捕获到异常的根本原因。
配置全局异常类,用于捕获MaxUploadSizeExceededException 异常
1 2 3 4 5 6 7 8 9
| @RestControllerAdvice public class GlobalExceptionHandler {
@ExceptionHandler(MultipartException.class) public Result<String> uploadExcepttion(MultipartException e){ return Result.error(500,"上传失败"); }
}
|